package org.base23.video.domain.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.base23.database.entity.DBModel;

/**
 * 智能视频播放器实体
 * 存储播放器控制信息、关键时刻、交互提示等
 */
@EqualsAndHashCode(callSuper = true)
@TableName("t_smart_video_player")
@Data
public class SmartVideoPlayer extends DBModel {

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 分析结果ID（关联视频分析结果）
     */
    private String resultId;

    /**
     * 视频URL
     */
    private String videoUrl;

    /**
     * 视频总时长(秒)
     */
    private Double videoDuration;

    /**
     * 视频帧率
     */
    private Double frameRate;

    /**
     * 视频总帧数
     */
    private Integer totalFrames;

    /**
     * 关键时刻信息（JSON格式）
     * 存储重要动作发生的时间点和描述
     */
    private String keyMoments;

    /**
     * 慢放片段信息（JSON格式）
     * 存储需要慢放观看的时间段
     */
    private String slowMotionSegments;

    /**
     * 建议暂停点（JSON格式）
     * 存储建议用户暂停观看的时间点
     */
    private String pausePoints;

    /**
     * 分析要点（JSON格式）
     * 存储各个时间点的分析结果和要点
     */
    private String analysisHighlights;

    /**
     * 播放指令（JSON格式）
     * 存储自动播放控制指令
     */
    private String playbackInstructions;

    /**
     * 缩略图时间轴（JSON格式）
     * 存储时间轴上的关键帧缩略图
     */
    private String thumbnailTimeline;

    /**
     * 交互提示信息（JSON格式）
     * 存储用户交互提示和说明
     */
    private String interactiveTips;

    /**
     * 播放器配置（JSON格式）
     * 存储播放器个性化配置
     */
    private String playerConfig;

    /**
     * 处理状态：PROCESSING(处理中), COMPLETED(完成), FAILED(失败)
     */
    private String status;

    /**
     * 错误信息（如果处理失败）
     */
    private String errorMessage;

} 